'\" t
.\"     Title: bugle-checks
.\"    Author: 
.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\"      Date: October 2007
.\"    Manual: Bugle user manual
.\"    Source: BUGLE 0.0.20150628
.\"  Language: English
.\"
.TH "BUGLE\-CHECKS" "7" "October 2007" "BUGLE 0.0.20150628" "Bugle user manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
bugle-checks \- check for errors that OpenGL defines as undefined behaviour
.SH "SYNOPSIS"
.sp
.nf
filterset checks
.fi
.SH "DESCRIPTION"
.PP
While OpenGL checks for many error conditions, there are some for which the specification does not define behaviour\&. These instances are usually in performance\-critical paths where error\-checking would impact on performance\&. This filter\-set checks for some of these conditions\&. Because of the high cost of the checks, it is only intended for debugging\&.
.PP
The checks that are made are for:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Sourcing vertex or index data from unreadable client memory\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Sourcing vertex or index data from outside the valid range of a vertex buffer object\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Calling
\fBglVertex\fR
from outside
\fBglBegin\fR/\fBglEnd\fR\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Setting client state from inside
\fBglBegin\fR/\fBglEnd\fR\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Specifying indices to
\fBglDrawRangeElements\fR
that are outside the specified range\&.
.RE
.PP
When an error is detected, a warning is written to standard error and the call is ignored\&. There is currently no convenient way to trap the errors in a debugger (you can, however, find the message in the
bugle
source and set a breakpoint on the appropriate line)\&.
.PP
Additionally, warnings are printed when an incomplete texture is used\&.
.SH "BUGS"
.PP
Due to the design of C, there is no way to perfectly reliably check for vertex array overruns, although memory debuggers can help\&.
.PP
Mesa, up to 6\&.5\&.1, has a bug that prevents generic vertex attributes from being validated\&.
.SH "AUTHOR"
.PP
bugle
is written and maintained by
Bruce Merry\&.
.SH "SEE ALSO"
.PP
\fBbugle\fR(3),
\fBbugle-unwindstack\fR(7)
